package es.tikitaka.dao;

import java.util.List;

import es.tikitaka.dictionary.AniosDic;
import es.tikitaka.domain.Temporada;

/**
 * 
 * @author Saúl Domínguez
 * @since 2010
 * @category PFC
 */

public interface TemporadaService {

	/**
	 * Método para listar todas las temporadas en el sistema
	 * 
	 * @return lista de temporadas
	 */
	List<Temporada> getList();

	/**
	 * Método para listar todas las temporadas en el sistema que tienen asociado
	 * un calendario
	 * 
	 * @return lista de temporadas con calendario
	 */
	List<Temporada> getTemporadasCalendario();

	/**
	 * Método para comprobar si existe una temporada para un año dado
	 * 
	 * @param anio
	 *            Año para el que comprobar si existe la temporada
	 * @return estado de la comprobación (true or false)
	 */
	boolean existeTemporada(AniosDic anio);

	/**
	 * 
	 * @param temporada
	 * @return
	 */
	Temporada merge(Temporada temporada);

	/**
	 * Método para eliminar una temporada del sistema
	 * 
	 * @param id
	 *            Id de la temporada a eliminar
	 * @return estado del proceso (true or false)
	 */
	boolean delete(Integer id);

	/**
	 * Método para almacenar una temporada en el sistema o las modificaciones
	 * sufridas por una temporada ya existente
	 * 
	 * @param temporada
	 *            Temporada a almacenar
	 * @return estado del proceso (true or false)
	 */
	boolean save(Temporada temporada);
}
